#pragma once
#include "scenenode.h"

/**
 * Klasa sceny.
 *
 * @author Krzysztof Klein
 * @version 0.1
 */
class Scene
{

	/**
	 * Nadrzedny wezel sceny
	 */
	SceneNode* rootNode;

public:

	/**
	 * Konstruktor domyslny
	 */
	Scene();

	/**
	 * Destruktor
	 */
	~Scene();


	/**
	 * Nadrzedny wezel sceny
	 */
	SceneNode* getRootNode() const { return rootNode; }


	/**
	 * Renderuje scene
	 */
	void drawAll();


	/**
	 * Laduje scene z danych zasobu
	 */
	bool loadFromResourceData(const void* data, unsigned dataSize);


	/**
	 * Znajduje podwezel na podstawie flagi
	 */
	SceneNode* getSubNodeFromFlag(SceneNode::Flag f) const { return rootNode->getSubNodeFromFlag(f); }
};
